package cn.edu.zut.sunday.blimp.domain;

import cn.edu.zut.sunday.base.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.gson.annotations.SerializedName;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "example_info")
public class ExampleInfo extends BaseEntity<Integer> {

    @JsonIgnore
    @ManyToOne(optional=false)
    @JoinColumn(name="belong_id")
    private DatasetName datasetName;

    @Column(name = "one_prefix_word_bad")
    @SerializedName("one_prefix_word_bad")
    private String onePrefixWordBad;

    @Column(name = "one_prefix_word_good")
    @SerializedName("one_prefix_word_good")
    private String onePrefixWordGood;

    @Column(name = "UID")
    @SerializedName("UID")
    private String UID;

    @Column(name = "linguistics_term")
    @SerializedName("linguistics_term")
    private String linguisticsTerm;

    @Column(name = "field")
    @SerializedName("field")
    private String field;

    @Column(name = "one_prefix_prefix")
    @SerializedName("one_prefix_prefix")
    private String onePrefixPrefix;

    @Column(name = "sentence_bad")
    @SerializedName("sentence_bad")
    private String sentenceBad;

    @Column(name = "sentence_good")
    @SerializedName("sentence_good")
    private String sentenceGood;

    @Column(name = "lexically_identical")
    @SerializedName("lexically_identical")
    private boolean lexicallyIdentical;

    @Column(name = "two_prefix_method")
    @SerializedName("two_prefix_method")
    private boolean twoPrefixMethod;

    @Column(name = "one_prefix_method")
    @SerializedName("one_prefix_method")
    private boolean onePrefixMethod;

    @Column(name = "simple_LM_method")
    @SerializedName("simple_LM_method")
    private boolean simpleLMMethod;

    @Column(name = "pair_id")
    @SerializedName("pair_id")
    private int pairId;
}
